package main

import (
	"fmt"
)

type Person struct {
	Name string
}

func (p Person) getName() {
	p.Name = "李四"
	fmt.Println(p.Name)
}

func (p *Person) setName(name string) {
	// (*p).Name = name 简化如下
	p.Name = name
	fmt.Println(p.Name)
}

func main() {
	// getName方法与Person结构体绑定，结构体调用方法属于值传递
	var p Person = Person{"张三"}
	p.getName()
	fmt.Println(p.Name)
	fmt.Printf("p地址: %p \n", &p)

	// 通过指针的形式修改原结构体
	// (&p).setName("李四") 简化如下
	p.setName("李四")
	fmt.Println(p.Name)
}